As computers have grown increasingly important in today's society, the importance of the Internet has also increased. As increased numbers of users access the Internet, the need for a web server to handle large numbers of data requests has also increased. In addition, as increasing numbers of requests are handled by the Internet, the delay experienced by the user between generating the request and receiving a response is also increasing.
Some traditional solutions to handling large numbers of data requests and decreasing the delay at the web server have involved increasing the processing capability of the web server and distributing the processing of the requests across groups of web servers. Other traditional solutions have involved increasing the bandwidth of the network connection between the Internet and the web server or servers. However, traditional solutions have often failed as the number of requests continue to increase because of the expense associated with maintaining large numbers of web servers and high speed connections to the Internet.
Another traditional solution has involved caching static web data at multiple locations so as to distribute the processing of requests across multiple cache servers and decreasing the network distance between the user and the cache server. This solution has not been effective for web servers utilizing dynamically generated data, such as Active Server Pages. Static caching solutions provide decreased benefit to web servers which utilize dynamic data because the static caching solutions simply pass requests for dynamic data on to the origin server. In many cases, the generation of dynamic data at the web server or servers has become a major bottleneck in handling requests because the web servers are reaching the limits of their processing capabilities. Adding additional web servers is effective as it increases processing capacity, but rapidly becomes cost-prohibitive.
Electronic commerce often involves large amounts of rapidly changing and dynamically generated data. For example, electronic commerce often involves large numbers of products listed in online catalogs. Often, the price and availability of an item listed in the online catalog changes and static caching solutions typically can not handle web pages for the online catalog because of the changing information on the web page. This dynamic nature of electronic commerce renders it largely unsuitable for use with static caching systems.